package com.demo.service;

import com.demo.dao.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service
public class UserService4 {
    //3、构造方法注入：
    //可以注入一个final修饰的对象；
    //注入的对象不会改变，因为构造方法只会加载一次；
    //构造方法注入可以保证注入对象完全初始化；
    //构造方法注入通用性更好；

    //缺点：
    //写法复杂
    //无法解决循环依赖问题

    private final UserRepository userRepository;

    @Autowired  //当前类中只有一个构造方法时，可加可不加
    public UserService4(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    public void sayHi(){
        System.out.println("Do UserService4 sayHi!!!");
        userRepository.add();
    }
}
